package com.mercury.ec.module.air.controller.admin.demandorder.vo.demandroute;

import com.mercury.ec.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

import static com.mercury.ec.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 机票需求订单方案行程分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class AirDemandRoutePageReqVO extends PageParam {

    @Schema(description = "需求订单id", example = "24503")
    private Long demandId;

    @Schema(description = "方案id", example = "2103")
    private Long demandSchemeId;

    @Schema(description = "序号")
    private Integer serialNo;

    @Schema(description = "pnr内容", example = "随便")
    private String pnrContent;

    @Schema(description = "采购商id 见表（basic_vendor.id）", example = "25808")
    private Long purchaseId;

    @Schema(description = "预订员id 见表（system_users.id）", example = "25808")
    private Long bookUserId;

    @Schema(description = "预订部门id 见表（system_dept.id）", example = "28942")
    private Long bookDeptId;

    @Schema(description = "预订时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] bookTime;

    @Schema(description = "报价操作员id 见表（system_users.id）", example = "23976")
    private Long quoteUserId;

    @Schema(description = "报价部门id 见表（system_dept.id）", example = "14148")
    private Long quoteDeptId;

    @Schema(description = "报价时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] quoteTime;

    @Schema(description = "核价操作员id 见表（system_users.id）", example = "23976")
    private Long pricingUserId;

    @Schema(description = "核价部门id 见表（system_dept.id）", example = "14148")
    private Long pricingDeptId;

    @Schema(description = "核价时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] pricingTime;

    @Schema(description = "取消规则id 见表（train_cancel_rule.id）", example = "6244")
    private Long cancelRuleId;

    @Schema(description = "取消操作员id 见表（system_users.id）", example = "15336")
    private Long cancelUserId;

    @Schema(description = "取消部门id 见表（system_dept.id）", example = "26451")
    private Long cancelDeptId;

    @Schema(description = "取消时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] cancelTime;

    @Schema(description = "取消原因")
    private String cancelCause;

    @Schema(description = "备注", example = "随便")
    private String remark;

    @Schema(description = "状态 字典（air_demand_route_status）", example = "2")
    private Integer status;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
